﻿var result = {success: false};
var preferences = null;
var dataElement = null;

function GetData()
{
	var baseUrl = 'http://mnogo.ru/';
	try
	{
		var content = AnyBalance.requestPost(baseUrl + 'enterljs.html', {
			UserLogin: preferences.login,
			'UserBirth[d]': preferences.date.getDate(),
			'UserBirth[m]': preferences.date.getMonth() + 1,
			'UserBirth[y]': preferences.date.getFullYear()
		});
		if($.trim(content) != "OK")
		{
			throw new AnyBalance.Error($.trim(content.replace(/<[^>]*>/g, ' ').replace(/\s{2,}/g, ' ')));
		}
		content = AnyBalance.requestGet(baseUrl + 'index.html');
		if(!content)
		{
			throw new AnyBalance.Error('Неверный ответ сервера.');
		}
		return content;
	}
	catch(e)
	{
		if(e.skip)
		{
			throw e;
		}
		throw new AnyBalance.Error('Не удалось получить данные: ' + e.message);
	}
}

function SetCounters()
{
	result['__tariff'] = $('td.authorized2012 a').first().text();
	if(AnyBalance.isAvailable('BALANCE'))
	{
		result['BALANCE'] = parseInt($('td.authorized2012 a:contains("бонус")').text());
	}
}

function ParseData(html)
{
	$(html).not('script').appendTo(dataElement);
}

function LoadPreferences()
{
	preferences = AnyBalance.getPreferences();
	if(!preferences.login || preferences.login == '')
	{
		throw new AnyBalance.Error('Введите логин');
	}
	var matches = /(\d{1,2})[-.\\\/](\d{1,2})[-.\\\/](\d{2,4})/.exec(preferences.birthday);
	if(!matches)
	{
		throw new AnyBalance.Error('День рождения должен быть в формате DD-MM-YYYY, например, 28-04-1980');
	}
	preferences.date = new Date(matches[3], matches[2] - 1, matches[1]);
	if(isNaN(preferences.date))
	{
		throw new AnyBalance.Error('Неверная дата ' + preferences.birthday);
	}
}

function Init()
{
	AnyBalance.setDefaultCharset('utf-8');
	dataElement = $('<data></data>');
	dataElement.appendTo('body');
	LoadPreferences();
}

function main()
{
	Init();
	try
	{
		ParseData(GetData());
		SetCounters();
	}
	finally
	{
		dataElement.remove();
	}
	result['success'] = true;
	AnyBalance.setResult(result);
}